package string;

/**
 * StringBuilder是专门为了修改字符串内容出现的API
 * 其内部维护一个可变的char数组。修改性能佳。
 * 并且提供了修改字符串常见的操作，如:增，删，改，插
 */
public class StringBuilderDemo1 {
    public static void main(String[] args) {
        String str = "好好学习java";
        //内部默认表示一个空字符串 ""
//        StringBuilder builder = new StringBuilder();
        //将给定的字符串内容复制一份到StringBuilder中
        StringBuilder builder = new StringBuilder(str);

//        StringBuffer builder = new StringBuffer(str);

        System.out.println("str:"+str);
        System.out.println("builder:"+builder);

        /*
            好好学习java
            好好学习java,为了找个好工作!
            append:追加内容
         */
        builder.append(",为了找个好工作!");
        System.out.println("str:"+str);//原字符串不变
        System.out.println("builder:"+builder);//内容被追加到StringBuilder中

        /*
            好好学习java,为了找个好工作!
            好好学习java,就是为了改变世界!
            replace:替换部分内容
            注:前两个参数为替换的范围，含头不含尾。
         */
        builder.replace(9,16,"就是为了改变世界");
        System.out.println("builder:"+builder);

        /*
            好好学习java,就是为了改变世界!
            ,就是为了改变世界!
            delete:删除部分内容
         */
        builder.delete(0,8);
        System.out.println("builder:"+builder);

        /*
            ,就是为了改变世界!
            活着,就是为了改变世界!
            insert:插入指定内容
         */
        builder.insert(0,"活着");
        System.out.println("builder:"+builder);
        /*
            StringBuilder只是修改String的一个工具，当我们修改完毕后可以调用
            它的toString方法，将修改后的字符串获取回来。
         */
        str = builder.toString();
        System.out.println(str);
    }
}





